package org.moonlight.jvm.instructions.constants.ldc;

import org.moonlight.jvm.instructions.base.Index8Instruction;
import org.moonlight.jvm.rtda.exclusive.Frame;
import org.moonlight.jvm.rtda.exclusive.OperandStack;
import org.moonlight.jvm.rtda.share.methodarea.RtConstantPool;

/**
 * LDC: 从运行时常量池中加载常量值，并把它推入操作数栈。ldc系列指令属于常量类指令，共3条。
 *      ldc: 加载 int、float 和 字符串常量
 *      ldc_w: 加载 java.lang. Class实例 或者 MethodType 和 MethodHandle 实例
 *      ldc2_2: ldc2_w指令用于加载long和double常量
 *
 *      ldc 和 ldc_w指令的区别仅在于操作数的宽度
 *
 * @author Moonlight
 * @createTime 2023/8/30 16:27
 **/
public class Ldc extends Index8Instruction {

    @Override
    public void execute(Frame frame) {
        LdcCommon.ldc(frame, this.idx);
    }

}